package com.sml.pojo;

import com.sml.anno.State;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import org.hibernate.validator.constraints.URL;

import java.time.LocalDateTime;

/**
 * 文章实体类
 */
@Data
public class Article {

    /**
     * 主键ID
     */
    private Integer id;
    /**
     * 标题
     */
    @NotEmpty(message = "文章标题不能为空")
    @Pattern(regexp = "^\\S{1,10}$", message = "文章标题长度必须在1-10个字符之间")
    private String title;

    /**
     * 文章内容
     */
    @NotEmpty(message = "文章内容不能为空")
    private String content;

    /**
     * 文章封面
     */
    @NotEmpty(message = "文章封面不能为空")
    @URL(message = "文章封面格式不正确")
    private String coverImg;

    /**
     * 状态（已发布/草稿）
     */
//    @NotEmpty
//    @Pattern(regexp = "^(已发布|草稿)$", message = "状态只能是已发布或草稿")
    @State
    private String state;

    /**
     * 文章分类id
     */
    @NotNull(message = "文章分类id不能为空")
    private Integer categoryId;

    /**
     * 创建人id
     */
    private Integer createUser;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
